1. Field
The present disclosure relates generally to graphics, and more specifically to techniques for dynamically configuring a texture cache.
2. Background
Texture mapping is one of the most successful and popular techniques in a 3D graphics pipeline for adding realism to a computer-generated scene. A typical texture mapping (TM) process is highly memory access intensive because the characteristic of the TM process involves multiple texture lookups. The frequent texture lookups cause a bottleneck on the memory bus. To alleviate this problem, a texture cache is often used. The texture cache serves to eliminate redundancy of fetching texels from an external memory source (e.g. off-chip memory) and utilizes the natural spatial locality of a triangle's rasterization.
Graphics applications typically send drawing commands in a batch mode. In the batch mode all the pixels share the same context state registers in a batch. In a single texture batch, all pixels fetch texels from one single texture map. However, in a multi-texture batch mode, if the different textures are stored inside one cache, conflict misses are very likely to occur. When two texture maps are assigned or allocated to the same cache line, the texture maps will thrash each other and generate redundant Memory traffic.
In view of the foregoing, using one cache for different texture maps reduces power and pixel performance.
There is therefore a need in the art for techniques to dynamically configure a texture cache.